<?php

/**
 * Description of ProductoServicios
 *
 * @author  Mariano Renkine
 * @author  Fernando Arau
 */
class ProductoServicios extends Servicios
{

  function agregar(ProductoDTO $productoDTO)
  {
    $repoProducto = new RepoProducto();
    $producto = $this->deDTO($productoDTO);
    $producto->setUsuario($this->ObtenerNombreUsuarioSesion());
    return $repoProducto->agregar($producto);
  }

  function modificar(ProductoDTO $productoDTO)
  {
    $repoProducto = new RepoProducto();
    $producto = $this->deDTO($productoDTO);
    $producto->setUsuario($this->ObtenerNombreUsuarioSesion());
    return $repoProducto->modificar($producto);
  }

  function buscar($id)
  {
    $repo = new RepoProducto();
    $producto = $repo->buscar($id);
    return $this->aDTO($producto);
  }

  function listar()
  {
    $repoProducto = new RepoProducto();
    $productos = $repoProducto->listar();
    $productoDTO = null;
    foreach ($productos as $producto)
    {
      $productoDTO[] = $this->aDTO($producto);
    }
    return $productoDTO;
  }

  function listarHabilitados()
  {
    $repoProducto = new RepoProducto();
    $productos = $repoProducto->listarHabilitados();
    $productosDTO = null;
    if ($productos != null)
    {
      foreach ($productos as $producto)
      {
        $productosDTO[] = $this->aDTO($producto);
      }
    }
    return $productosDTO;
  }

  function listarIdName()
  {
    $resultado = "";
    $productos = $this->listarHabilitados();
    if ($productos != null)
    {
      for ($i = 0; $i < count($productos); $i++)
      {
        $resultado[$i]["id"] = $productos[$i]->getId();
        $resultado[$i]["name"] = $productos[$i]->getDescripcion();
      }
    } else
    {
      $resultado[0]["id"] = "";
      $resultado[0]["name"] = "";
    }
    return $resultado;
  }

  function buscarPorTratamiento(Tratamiento $tratamiento)
  {
    $repoProducto = new RepoProducto();
    return $repoProducto->buscarPorTratmiento($tratamiento);
  }

  function aDTO(Producto $producto)
  {
    $productoDTO = new ProductoDTO();
    $productoDTO->setCosto($producto->getCosto());
    $productoDTO->setDescripcion($producto->getDescripcion());
    $productoDTO->setId($producto->getId());
    $productoDTO->setVersion($producto->getVersion());
    $productoDTO->setPrecio($producto->getPrecio());
    $productoDTO->setUsuario($producto->getUsuario());
    return $productoDTO;
  }

  function deDTO(ProductoDTO $productoDTO)
  {
    $producto = new Producto();
    $producto->setCosto($productoDTO->getCosto());
    $producto->setDescripcion($productoDTO->getDescripcion());
    $producto->setId($productoDTO->getId());
    $producto->setVersion($productoDTO->getVersion());
    $producto->setPrecio($productoDTO->getPrecio());
    $producto->setUsuario($productoDTO->getUsuario());
    return $producto;
  }
function eliminar($id)
  {
    $repoProducto = new RepoProducto();
    return $repoProducto->eliminar($id);
  }
}

?>
